package com.wicket.okrcalc.biz.service.dto.req;

import com.wicket.okrcalc.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc AddAcceptFieldReqDto
 * @使用场景
 */
@Data
public class AddAcceptFieldReqDto extends BaseDto implements Serializable {
/**
     * 通用数值字段（整数型） 
     */
    @NotNull(message = "通用数值字段（整数型）不能为空")
@ApiModelProperty("通用数值字段（整数型）")
    private Long	 comNumField;
/**
     * 是否 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否不能为空")
@ApiModelProperty("是否")
    private String	 tureOrFalse;
/**
     * 进度值计算公式 MANUAL_REPORT:人工填报 CLONE:人工填报进度值克隆其他树 RIGHTWARD_CALCULATION:人工填报进度值克隆末级周期 DOWNWARD_CALCULATION_NOKR:向下计算参照值不赋值（只有O） DOWNWARD_CALCULATION_NOKR_COPY:向下计算参照值并赋值（只有O） DOWNWARD_CALCULATION_KR:向下计算参照值不赋值（O加KR） DOWNWARD_CALCULATION_KR_COPY:向下计算参照值并赋值（O加KR） DOWNWARD_CALCULATION_ONLY_KR:向下只计算KR DOWNWARD_CALCULATION_PROGRESS:只向下计算进度值
     */
    @NotNull(message = "进度值计算公式不能为空")
@ApiModelProperty("进度值计算公式")
    private String	 progressValueCalcFormula;
/**
     * 参照进度值计算公式 MANUAL_REPORT:人工填报 CLONE:人工填报进度值克隆其他树 RIGHTWARD_CALCULATION:人工填报进度值克隆末级周期 DOWNWARD_CALCULATION_NOKR:向下计算参照值不赋值（只有O） DOWNWARD_CALCULATION_NOKR_COPY:向下计算参照值并赋值（只有O） DOWNWARD_CALCULATION_KR:向下计算参照值不赋值（O加KR） DOWNWARD_CALCULATION_KR_COPY:向下计算参照值并赋值（O加KR） DOWNWARD_CALCULATION_ONLY_KR:向下只计算KR DOWNWARD_CALCULATION_PROGRESS:只向下计算进度值
     */
    @NotNull(message = "参照进度值计算公式不能为空")
@ApiModelProperty("参照进度值计算公式")
    private String	 countProgressValueCalcFormula;
/**
     * OKR目标属性 OBJECTIVES:目标O KEY_RESULTS:关键成果KR
     */
    @NotNull(message = "OKR目标属性不能为空")
@ApiModelProperty("OKR目标属性")
    private String	 indicatorKind;
/**
     * 实际值计算公式 SYSTEM_DOCKING:系统对接实际值 MANUAL_REPORT:人工填报实际值 CLONE_EVA_OBJECT:人工填报实际值克隆评价对象树 CLONE_OKR_PERSONE:人工填报实际值克隆OKR个人树 RIGHTWARD_CALCULATION:人工填报实际值克隆末级周期 RIGHTWARD_CALCULATION_SUM:人工填报实际值末级周期求和 DOWNWARD_CALCULATION_SUM:向下计算参照值不赋值（求和） DOWNWARD_CALCULATION_SUM_COPY:向下计算参照值并赋值（求和） DOWNWARD_CALCULATION_WEIGHT:向下计算参照值不赋值（权重求和） DOWNWARD_CALCULATION_WEIGHT_COPY:向下计算参照值并赋值（权重求和）
     */
    @NotNull(message = "实际值计算公式不能为空")
@ApiModelProperty("实际值计算公式")
    private String	 actualValueCalcFormula;
/**
     * 参照实际值计算公式 SYSTEM_DOCKING:系统对接实际值 MANUAL_REPORT:人工填报实际值 CLONE_EVA_OBJECT:人工填报实际值克隆评价对象树 CLONE_OKR_PERSONE:人工填报实际值克隆OKR个人树 RIGHTWARD_CALCULATION:人工填报实际值克隆末级周期 RIGHTWARD_CALCULATION_SUM:人工填报实际值末级周期求和 DOWNWARD_CALCULATION_SUM:向下计算参照值不赋值（求和） DOWNWARD_CALCULATION_SUM_COPY:向下计算参照值并赋值（求和） DOWNWARD_CALCULATION_WEIGHT:向下计算参照值不赋值（权重求和） DOWNWARD_CALCULATION_WEIGHT_COPY:向下计算参照值并赋值（权重求和）
     */
    @ApiModelProperty("参照实际值计算公式")
    private String	 countActualValueCalcFormula;
/**
     * 数据结果ID 
     */
    @ApiModelProperty("数据结果ID ")
    private String	 dataResultId;
/**
     * 通用数值字段（小数型） 
     */
    @NotNull(message = "通用数值字段（小数型）不能为空")
@ApiModelProperty("通用数值字段（小数型）")
    private Double	 comFloatField;
/**
     * 主客观得分（数值） 
     */
    @NotNull(message = "主客观得分（数值）不能为空")
@ApiModelProperty("主客观得分（数值）")
    private Double	 subAndObjScore;
/**
     * 达成度（数值） 
     */
    @NotNull(message = "达成度（数值）不能为空")
@ApiModelProperty("达成度（数值）")
    private Double	 reach;
/**
     * 汇报得分（数值） 
     */
    @NotNull(message = "汇报得分（数值）不能为空")
@ApiModelProperty("汇报得分（数值）")
    private Double	 reportScoreValue;
/**
     * 实际得分（数值） 
     */
    @NotNull(message = "实际得分（数值）不能为空")
@ApiModelProperty("实际得分（数值）")
    private Double	 actualScoreValue;
/**
     * 计算或克隆 CALC:计算 CLONE_FROM_EVA_SUBJECT:从评价对象树克隆 CLONE_FROM_OKR_PERSON:从OKR个人树克隆
     */
    @ApiModelProperty("计算或克隆")
    private String	 calcOrClone;
/**
     * 计算本级或下级 RANK_CALC:计算本级 DOWN_CALC:计算下级
     */
    @NotNull(message = "计算本级或下级不能为空")
@ApiModelProperty("计算本级或下级")
    private String	 rankOrDownCalc;
/**
     * 开启或不开启KR OKR:开启KR NO_KR:未开启KR
     */
    @NotNull(message = "开启或不开启KR不能为空")
@ApiModelProperty("开启或不开启KR")
    private String	 okrOrNoOkr;
/**
     * 主客观模型 SUBJECTIVE:主观 OBJECTIVE:客观 SUBJECTIVE_AND_OBJECTIVE:主客观得分
     */
    @NotNull(message = "主客观模型不能为空")
@ApiModelProperty("主客观模型")
    private String	 subAndObjModel;
/**
     * 实际得分组成 INCLUDE_RANK:本级汇报得分 NOT_INCLUDE_RANK:下级实际得分 RANK_AND_DOWN:本级加下级
     */
    @NotNull(message = "实际得分组成不能为空")
@ApiModelProperty("实际得分组成")
    private String	 actualScoreIncludeRank;
/**
     * 自定义字段1 
     */
    @ApiModelProperty("自定义字段1")
    private String	 customField1;

    /**
     * 自定义字段2 
     */
    @ApiModelProperty("自定义字段2")
    private String	 customField2;
/**
     * 被评对象目标周期ID 
     */
    @ApiModelProperty("被评对象目标周期ID")
    private String	 evaObjTargetCycleId;

    /**
     * 周期ID 
     */
    @ApiModelProperty("周期ID")
    private String	 cycleId;

    /**
     * 更新周期ID 
     */
    @ApiModelProperty("更新周期ID")
    private String	 updateCycleId;

    /**
     * 数据类型编码 ACTUAL_VALUE:实际值 COUNT_ACTUAL_VALUE:计算实际值 CHANGE_FROM_LAST_TARGET:较上次目标变化值 COUNT_CHANGE_FROM_LAST_TARGET:计算较上次目标变化值 FROM_LAST_TARGET_LIFT_RATIO:较上次目标增降幅 COUNT_FROM_LAST_TARGET_LIFT_RATIO:计算较上次目标增降幅 PROGRESS_VALUE:进度值 COUNT_PROGRESS_VALUE:计算进度值 FROM_LAST_PROGRESS_VALUE:进度较上次变化值 COUNT_FROM_LAST_PROGRESS_VALUE:计算进度较上次变化值 PROGRESS_FROM_LAST_RATIO:进度较上次增降幅 COUNT_PROGRESS_FROM_LAST_RATIO:计算进度较上次增降幅 REACH:达成度 COUNT_REACH:计算达成度 FROM_LAST_REACH:达成度较上次变化值 COUNT_FROM_LAST_REACH:计算达成度较上次变化值 ACTUAL_FROM_LAST_TIME_RATIO:达成度较上次增降福 COUNT_FROM_LAST_REACH_RATIO:计算达成度较上次增降福 FUNDS_RECEIVED:到账资金 FUNDS_RECEIVED_FROM_LAST:到账较上次变化值 CUMULATIVE_FUNDS_RECEIVED:累计到账资金 FUNDS_EXPEND:支出资金 FUNDS_EXPEND_FROM_LAST:支出较上次变化值 CUMULATIVE_FUNDS_EXPEND:累计支出资金 BUDGET_AMOUNT:预算余额 FUNDS_RECEIVED_BALANCE:到账余额 SUBJECTIVE_MARK:主观评分 SUBJECTIVE_SCORE:主观得分 OBJECTIVE_SCORE:客观得分 PROCESS_SCORE:过程得分 FROM_LAST_REPORT_SCORE:汇报得分较上次变化值 RESULT_SCORE:结果得分 FROM_LAST_RATIO_REPORT_SCORE:汇报得分较上次增降幅 REAL_TIME_SCORE:实时得分 FROM_LAST_ACTUAL_SCORE:实际得分较上次变化值 GIVE_LIKES:点赞数 FROM_LAST_RATIO_ACTUAL_SCORE:实际得分较上次增降幅 DELAY_SURPLUS_LENGTH:延后或剩余天数 SUB_REPORT_AVG_SCORE:子周期汇报平均分 LAST_REPORT_AVG_SCORE:末级周期汇报平均分 RECENTLY_REPORT_AVG_SCORE:最近周期汇报平均分 PROCESS_REPORT_MID_SCORE:过程汇报中期得分 SUB_PROCESS_REPORT_SCORE:子周期过程汇报得分 MID_PROCESS_REPORT_SCORE:中期过程汇报得分 FATHER_PROCESS_REPORT_SCORE:父周期过程汇报得分 CURRENT_SUBJECTIVE_SCORE:当前主观得分 PROCESS_SUBJECTIVE_SCORE:过程主观得分 LOCAL_LEVEL_SCORE:本级得分 LOWER_LEVEL_SCORE:下级得分 ACTUAL_SCORE:实际得分 ROLE_SUBJECTIVE_SCORE:角色主观得分 SUB_ACTUAL_SCORE:子周期实际得分 MID_ACTUAL_SCORE:中期实际得分 FATHER_ACTUAL_SCORE:父周期实际得分 LOW_KR_ACTUAL_SCORE:下级KR实际得分 SUBJECTIVE_AND_OBJECTIVE_SCORE:主客观得分 FATHER_CYCLE_REPORT_SCORE:父周期汇报得分 MID_CYCLE_REPORT_SCORE:中期汇报得分 LOWER_PROCESS_CYCLE_REPORT_SCORE:下级过程周期汇报得分 SUB_CYCLE_REPORT_SCORE:子周期汇报得分 LOWER_WORK_CYCLE_REPORT_SCORE:下级工作周期实际得分 LAST_CYCLE_REPORT_SCORE:末级周期汇报得分 NOT_LAST_PROCESS_CYCLE_REPORT_SCORE:中间周期汇报得分 REPORT_SCORE:汇报得分 PROCESS_REPORT_SCORE:过程汇报得分 REPORT_AVG_SCORE:汇报平均分
     */
    @ApiModelProperty("数据类型编码")
    private String	 dataType;

    /**
     * 冗余评价模板ID 
     */
    @ApiModelProperty("冗余评价模板ID")
    private String	 evaluationTemplateId;

    /**
     * 客观得分 
     */
    @ApiModelProperty("客观得分")
    private Double	 objectiveScore;
/**
     * 进度值是否向下计算
     */
    @NotNull(message = "进度值是否向下计算不能为空")
@ApiModelProperty("进度值是否向下计算")
    private Long	 progressValueCanDownCalc;
/**
     * 进度值后端元素
     */
    @NotNull(message = "进度值后端元素不能为空")
@ApiModelProperty("进度值后端元素")
    private String	 progressValueInterFaceElement;
/**
     * 实际值后端元素
     */
    @NotNull(message = "实际值后端元素不能为空")
@ApiModelProperty("实际值后端元素")
    private String	 actualValueInterFaceElement;
/**
     * 进度值（数值） 
     */
    @NotNull(message = "进度值（数值）不能为空")
@ApiModelProperty("进度值（数值）")
    private Double	 progressValue;
/**
     * 实际值（数值） 
     */
    @NotNull(message = "实际值（数值）不能为空")
@ApiModelProperty("实际值（数值）")
    private Double	 actualValue;
/**
     * 数据值结果
     */
    @ApiModelProperty("数据值结果")
    private Double	 dataResult;
/**
     * 父子中周期类型 PARENT_CYCLE:父周期 MID_CYCLE:中期 SUB_CYCLE:子周期 PROCESS_CYCLE:过程周期
     */
    @NotNull(message = "父子中周期类型不能为空")
@ApiModelProperty("父子中周期类型")
    private String	 parentSubMidCycleType;

    /**
     * 是否工作周期数据 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否工作周期数据不能为空")
@ApiModelProperty("是否工作周期数据")
    private String	 isWorkCycleData;

    /**
     * 标准数据计算周期模型 LAST_CYCLE:末级周期 MID_OF_PROCESS_CYCLE:中间周期 SUB_CYCLE:子周期 MID_CYCLE:中期 PARENT_CYCLE:父周期
     */
    @NotNull(message = "标准数据计算周期模型不能为空")
@ApiModelProperty("标准数据计算周期模型")
    private String	 standardDataCalcCycleModel;

    /**
     * 小数点规则
     */
    @NotNull(message = "小数点规则不能为空")
@ApiModelProperty("小数点规则")
    private Long	 decimalPointRules;

    /**
     * 小数最后一位规则 MALING:尾数抹零 ROUNDED:尾数四舍五入
     */
    @NotNull(message = "小数最后一位规则不能为空")
@ApiModelProperty("小数最后一位规则")
    private String	 decimalDigitsLastRules;
/**
     * 主观得分 
     */
    @NotNull(message = "主观得分不能为空")
@ApiModelProperty("主观得分")
    private Double	 subjectiveScore;
/**
     * 自定义字段3
     */
    @NotNull(message = "自定义字段3不能为空")
@ApiModelProperty("自定义字段3")
    private String	 customField3;

    /**
     * 自定义字段4
     */
    @NotNull(message = "自定义字段4不能为空")
@ApiModelProperty("自定义字段4")
    private String	 customField4;
/**
     * 自定义字段
     */
    @NotNull(message = "自定义字段不能为空")
@ApiModelProperty("自定义字段")
    private String	 customField;

    /**
     * 自定义字段5
     */
    @NotNull(message = "自定义字段5不能为空")
@ApiModelProperty("自定义字段5")
    private String	 customField5;
/**
     * 目标得分OKR变量 FALSE:主树得分没有KR TRUE:主树或个人树向下计算KR CLONE_EVA_OBJECT_REPORT_SCORE_NO_KR:其他树得分克隆主树（--KR) PERSON_KR_REPORT_SCORE_CLONE_EVA:个人树KR得分克隆主树（KR） STANDARD_OBJECT_CLONE_EVA_OBJECT_REPORT_SCORE:OKR部门树得分标准O克隆主树（+KR） CUSTOM_OBJECT_CLONE_PERSONAL_REPORT_SCORE:OKR部门树得分自定义O克隆个人树（+KR）
     */
    @ApiModelProperty("目标得分OKR变量")
    private String	 reportScoreOkrVariables;
/**
     * 自定义字段6 
     */
    @NotNull(message = "自定义字段6不能为空")
@ApiModelProperty("自定义字段6")
    private String	 customField6;
/**
     * 绩效得分计算公式 CALC:自己计算得分 CLONE_FROM_EVA_SUBJECT:当前树克隆主树得分
     */
    @NotNull(message = "绩效得分计算公式不能为空")
@ApiModelProperty("绩效得分计算公式")
    private String	 performanceTargetScoreFormula;
/**
     * 绩效得分本级与下级组合变量 
     */
    @NotNull(message = "绩效得分本级与下级组合变量不能为空")
@ApiModelProperty("绩效得分本级与下级组合变量")
    private String	 perfScoreRankOrDownCalc;
/**
     * 绩效得分主客观变量 
     */
    @NotNull(message = "绩效得分主客观变量不能为空")
@ApiModelProperty("绩效得分主客观变量")
    private String	 perfTargetScoreSubAndObjVariables;
/**
     * 绩效实际值计算公式 SYSTEM_DOCKING:系统对接实际值 MANUAL_REPORT:人工填报实际值 CLONE_EVA_OBJECT:当前树实际值克隆主树 PERSONAL_KR_ACTUAL_CLONE_EVA_KR:11111个人树KR实际值克隆主树KR STANDARD_OBJECT_CLONE_EVA_OBJECT_ACTUAL:11111OKR部门树标准O实际值克隆主树（+KR） CUSTOM_OBJECT_CLONE_PERSONAL_ACTUAL:11111OKR部门树自定义O实际值克隆个人树（+KR） RIGHTWARD_CALCULATION:向左取最近可循环周期最新 RIGHTWARD_CALCULATION_SUM:向左取最近可循环周期求和 DOWNWARD_CALCULATION_SUM:向下计算参照值不赋值（求和） DOWNWARD_CALCULATION_SUM_COPY:向下计算参照值并赋值（求和） DOWNWARD_CALCULATION_WEIGHT:向下计算参照值不赋值（权重求和） DOWNWARD_CALCULATION_WEIGHT_COPY:向下计算参照值并赋值（权重求和）
     */
    @NotNull(message = "绩效实际值计算公式不能为空")
@ApiModelProperty("绩效实际值计算公式")
    private String	 perfActualValueCalcFormula;
/**
     * 上一数据结果ID 
     */
    @ApiModelProperty("上一数据结果ID")
    private String	 parentDataResultId;

    /**
     * 上一数据值结果 
     */
    @ApiModelProperty("上一数据值结果")
    private Double	 parentDataResult;
/**
     * 更新周期开始时间 
     */
    @NotNull(message = "更新周期开始时间不能为空")
@ApiModelProperty("更新周期开始时间")
    private Date	 updateCycleStartTime;

    /**
     * 更新周期结束时间 
     */
    @NotNull(message = "更新周期结束时间不能为空")
@ApiModelProperty("更新周期结束时间")
    private Date	 updateCycleEndTime;

}
